Program spusteny z IDE
Otázka od: Lebeda David
14. 10. 2002 16:23
Ahoj,
rad bych otevrel tema, ktere uz se tu resilo, a trosku ho posunul k
jinemu reseni. Potrebuji poznat, zda aplikace byla spustena z IDE ci
nikoli. V archivu jsem nasel reseni s pomoci
FindWindow('TAppBuilder', nil)
ale to neresi situaci, kdy je aplikace spustena mimo Delphi, ale v
dobe, kdy i Delphi je spusteno. Reseni s pomoci podmineneho
prekladu rovnez nepovazuji za nic prinosneho.
Na druhou stranu Windows poznaji, ze aplikace je v rezimu ladeni
(napr. nejde sestrelit). Neslo by to detekovat i programove, tj. aby
aplikace sama poznala, ze je ladena?
Dik
David Lebeda
Odpovedá: Bohdan Dudla
14. 10. 2002 16:30
Ahoj.
Pod NT muzes pouzit API funkci IsDebbugerPresent().
V Delphi 5 ji budes muset nadeklarovat sam, nachazi se v kernel32.dll.
With best regards,
Bohdan Dudla
Pike Electronic spol. s r.o.
Modrinova 2
300 00 Plzen
Czech Republic
tel: +420 19 72 40 738
fax: +420 19 74 31 738
gsm: +420 732 441 716
e-mail: bdudla@pikeelectronic.com
Odpovedá: Petr Vones
14. 10. 2002 23:26
From: "Bohdan Dudla" <bdudla@pikeelectronic.com>
> Pod NT muzes pouzit API funkci IsDebbugerPresent().
> V Delphi 5 ji budes muset nadeklarovat sam, nachazi se v kernel32.dll.
Jenze tato funkce neni ve Windows 95, takze by pak aplikace nesla vubec
spustit diky chybejicimu importu. Muzes pouzit funkci IsDebuggerAttached v
unitu JclDebug z JCL, ktera funguje na vsech verzich Windows:
http://sourceforge.net/project/showfiles.php?group_id=47514&release_id=100652
http://delphi-jedi.org/CODELIBJCL
Dalsi moznost je zjistit jmeno parent procesu nebo hodnotou promenne DebugHook
urcit zdali je aplikace spustena pod debugerem.
Petr Vones